package com.bonuo.saas.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("研发项目申报")
public class ResearchProject extends BaseEntity {

    /** id */
    private Integer id;

    /** 类别 */
    @ApiModelProperty(value = "类别", example = "1")
    private Integer type;

    /** 项目类别 */
    @ApiModelProperty(value = "资质荣誉类别", example = "企业资质")
    @Excel(name = "资质荣誉类别",dictType = "sys_honor_type")
    private Integer projectType;

    /** 项目名称 */
    @ApiModelProperty(value = "项目名称", example = "XX项目")
    @Excel(name = "项目名称")
    private String name;

    /** 项目来源 */
    @ApiModelProperty(value = "项目来源", example = "XX公司")
    @Excel(name = "项目来源")
    private String source;

    /** 项目级别 */
    @ApiModelProperty(value = "项目级别", example = "1")
    @Excel(name = "项目级别",dictType = "sys_research_project_level")
    private String level;

    /** 归口单位 */
    @ApiModelProperty(value = "归口单位", example = "XX科技有限公司")
    @Excel(name = "归口单位")
    private String supervisoryUnit;

    /** 申请日期 */
    @ApiModelProperty(value = "申请日期", example = "2023-01-15")
    @Excel(name = "申请日期", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date applyDate;

    /** 申请单位(可多选) */
    @ApiModelProperty(value = "(申报、获奖)单位（可多选）", example = "XX科技有限公司，YY公司")
    @Excel(name = "(申报、获奖)单位")
    private String applicationUnit;

    /** 验收日期 */
    @ApiModelProperty(value = "验收日期", example = "2023-01-15")
    @Excel(name = "验收日期", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date checkDate;

    /** 项目参与人员 */
    @ApiModelProperty(value = "参与人员（可多选）", example = "张三,李四")
    @Excel(name = "参与人员")
    private String participant;

    /** 司外对接人员 */
    @ApiModelProperty(value = "司外对接人员（可多选）", example = "王五,赵六")
    @Excel(name = "司外对接人员")
    private String personnelForCommunicating;

    /** 项目状态 */
    @ApiModelProperty(value = "项目状态", example = "申请中")
    @Excel(name = "项目状态")
    private String status;

    /** 开始时间 */
    @ApiModelProperty(value = "开始时间", example = "2023-01-15")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date startDate;

    /** 有效期至 */
    @ApiModelProperty(value = "有效期至", example = "2023-01-15")
    @Excel(name = "有效期至", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date validDate;

    /** 补贴金额 */
    @ApiModelProperty(value = "补贴金额", example = "10000")
    @Excel(name = "补贴金额(万元)")
    private BigDecimal subsidyAmount;

    /** 到账金额 */
    @ApiModelProperty(value = "到账金额", example = "10000")
    @Excel(name = "到账金额(万元)")
    private BigDecimal arrivalAmount;

    /** 公示文件 */
    @ApiModelProperty(value = "公示文件", example = "XX项目.doc")
    private String publicNotice;

    /** 银行收款单 */
    @ApiModelProperty(value = "银行收款单", example = "XX项目收款单.pdf")
    private String bankReceiveBill;

    /** 证书 */
    @ApiModelProperty(value = "证书", example = "XX项目证书.pdf")
    private String certificate;

}
